博客
关于我
03-Action类的创建方式及访问
阅读量:799 次
发布时间:2023-04-03

本文共 1727 字,大约阅读时间需要 5 分钟。

关于Struts2 Action类的创建方式及访问方法

在Struts2框架开发中,Action类的创建方式和访问方法是核心内容之一。本文将从Action类的创建方式以及其访问方法两方面进行详细介绍。

Action类的创建方式

Struts2框架支持三种创建Action类的方式,每种方式都有其独特的优缺点和适用场景。

  • 创建一个POJO类

    POJO(Plain Old Java Objects)指的是没有实现任何接口,也没有继承任何父类(除了Object)的普通Java对象。这种方式的优点是无耦合度高,但缺点是所有操作都需要手动实现。
    在Struts2框架中,这种方式通过反射来实现:

    • 首先读取struts.xml文件,获取完整Action类名。
    • 然后使用Class.forName()方法加载该类。
    • 最后通过newInstance()创建对象,并调用execute()方法。
      例如:
    obj = Class.forName("cn.itcast.action.BookAction").newInstance();
    Method m = Class.forName("cn.itcast.action.BookAction").getMethod("execute");
    m.invoke(obj);
  • 创建一个实现Action接口的类

    Action接口是Struts2框架的核心接口,提供了五种结果视图(SUCCESS、ERROR、INPUT、LOGIN、NONE)以及行为方法。这种方式的优点是耦合度较低,但缺点是需要手动实现接口中的方法并管理结果视图。
    例如:

    public class BookAction implements Action {
    public String SUCCESS = "success";
    public String ERROR = "error";
    public String execute() {
    // 数据处理逻辑
    return SUCCESS;
    }
    }
  • 继承自ActionSupport类

    ActionSupport类是Action接口的实现类,内置提供了表单校验、错误信息设置、国际化支持等功能。这种方式的优点是开发效率高,但耦合度较高。
    例如:

    public class BookAction extends ActionSupport {
    public String execute() {
    // 数据处理逻辑
    return SUCCESS;
    }
    }
  • Action的访问方法

    Struts2框架提供了多种方式来访问Action类中的方法。

  • 通过method属性指定方法

    在struts.xml文件中,可以通过method属性指定需要调用Action类中的哪个方法。
    例如:

    当访问book_add时,会调用BookAction类中的add方法。

  • 使用通配符简化配置

    通配符可以简化Action类的配置,适用于多个Action类共享同一个配置文件的情况。
    在struts.xml中,可以使用*_*作为通配符。
    例如:

    这样,当访问Book!addProduct!delete时,会分别调用相应的方法。

  • 动态方法调用

    Struts2框架支持动态方法调用,通过在URL中使用感叹号!分隔方法名称。
    例如:

    book add

    当访问Book!add时,会调用BookAction类中的add方法。

    为了支持动态方法调用,请确保在struts.properties文件中设置:

    struts.enable.DynamicMethodInvocation = true
  • 注意事项

    • 动态方法调用:需要确保动态方法调用被启用。
    • 命名规范:在使用通配符时,必须定义统一的命名规范,避免混乱。
    • 反射机制:在创建POJO类时,Struts2框架会通过反射机制调用方法,这可能对性能有一定影响。

    通过以上方法,可以灵活地创建和访问Struts2框架下的Action类,从而实现高效的应用开发。

    转载地址:http://neefk.baihongyu.com/

    你可能感兴趣的文章